<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page import="com.esurvey.core.*" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.sql.Date" %>
<HTML>
<HEAD>
	<TITLE>eSurvey - Men&uacute; de adminsistraci&oacute;n de usuarios</TITLE>
<LINK href="styles/general.css" type="text/css" rel="stylesheet">
<LINK href="styles/adminUsers.css" type="text/css" rel="stylesheet">
<SCRIPT src="jquery/jquery.js" type="text/javascript"></SCRIPT>
<SCRIPT src="js/global.js" type="text/javascript"></SCRIPT>
<SCRIPT type="text/javascript">
/**
  * ESPECIFICACIÓN: Función que carga las encuestas correspondientes al usuario pulsado
  **/
function viewUserSurveys(idUser) {
	window.location="viewUserSurveys.jsp?idUser="+idUser;
}
/**
  * ESPECIFICACIÓN: Función que elimina el usuario indicado, pidiendo previamente confirmación
  **/
function deleteUser(idUser) {
	var confirmar=confirm("Estas seguro de eliminar el usuario con identificador '"+idUser+"'? Todas sus encuestas y resultados creados se eliminaran");
	if (confirmar) {
		window.location="deleteUser.jsp?idUser="+idUser;
	}
}
</SCRIPT>
</HEAD>
<%
if (session.getAttribute("kind") == "admin") {
	try {
		String usernameLogin = (String)session.getAttribute("username");
		//cargamos todos los usuarios existentes actualmente
		ArrayList<User> users = eSurveyPersistence.loadUsers(); 
%>
	<BODY>
		<DIV id="general">
			<DIV id="header">
				<%@ include file="header.jsp" %>
			</DIV>
			<DIV id="content">
				<DIV id="main">
					<H1>Men&uacute; principal de administraci&oacute;n de usuarios</H1>
					<DIV>
						<DIV id="headerUsers">
							<H2>Usuarios de eSurvey:</H2>
							<A href="addNewUser.jsp"><INPUT type="button" class="button" value="Crear nuevo usuario" class="addUser"></A>
						</DIV>
						<DIV id="resultsUsersTable">
							<FIELDSET class="fieldset"><LEGEND class="fieldsetTitle">Usuarios creados actualmente</LEGEND>
								<TABLE class="resultsUsersTable">
									<TR class="headerTable">
										<TH>Id</TH>
										<TH>Nombre</TH>
										<TH>Apellidos</TH>
										<TH>Login</TH>
										<TH>Email</TH>
										<TH>Verificado?</TH>
										<TH>Admin?</TH>
										<TH>Encuestas creadas</TH>
										<TH>&Uacute;ltima encuesta</TH>
										<TH class="novisible"></TH>
									</TR>
									<%
										//cargamos los diferentes usuarios en la tabla correspondiente
										for (User u: users) {
											if (! u.getLogin().toUpperCase().equals(usernameLogin.toString().toUpperCase())) {
												out.println("<TR class='noHeader'>");

												//asignamos los diferents valores del usuario en las celdas correspondientes
												out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>"+u.getId()+"</TD>");
												out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>"+u.getName()+"</TD>");
												out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>"+u.getSurname()+"</TD>");
												out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>"+u.getLogin()+"</TD>");
												out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>"+u.getEmail()+"</TD>");

												if (u.getEmailVerified()) {
													out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>S&iacute;</TD>");
												} else {
													out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>No</TD>");
												}

												if (u.isAdmin()) {
													out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>S&iacute;</TD>");
												} else {
													out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>No</TD>");
												}

												//cargamos el listado de encuestas correspondiente al usuario actual
												ArrayList<Survey> surveys = eSurveyPersistence.loadSurveys(u.getId());
												int numSurveys = 0;
												long maxDateMillis = 0;
												String lastSurvey = "";
												for (Survey s: surveys) {
													//cargamos la fecha de creación de la encuesta que estamos comprobando actualmente.
													//Si la fecha de creación actual es la primera (será mayor que 0) o es mayor que la 
													//almacenada hasta el momento,, intercanviamos el valor de la variable correspondiente
													long actualDateMillis = s.getCreationDate().getTime();
													if (maxDateMillis < actualDateMillis) {
														maxDateMillis = actualDateMillis;
														lastSurvey = s.getCreationDateToString();
													}
													numSurveys++;
												}
												//asignamos los variables obtenidos en las celdas correspondientes
												out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>"+numSurveys+"</TD>");
												out.println("<TD onclick='viewUserSurveys("+u.getId()+")' title='Visualizar encuestas del usuario'>"+lastSurvey+"</TD>");

												out.println("<TD class='novisible'><IMG src='images/unchecked.gif' title='Eliminar usuario' onclick='deleteUser("+u.getId()+")' class='deletUser' /></TD>");

												out.println("</TR>");
											}
										}
									%>
								</TABLE>
							</FIELDSET>
						</DIV>
					</DIV>
				</DIV>
				<DIV id="nav">
					<DIV class="tabs">
						<%@ include file="adminTabs.html" %>
					</DIV>
				</DIV>
			</DIV>
			<DIV id="footer">
				<%@ include file="footer.jsp" %>
			</DIV>
		</DIV>
	</BODY>
<%
	} catch (Exception e) {
		response.sendRedirect("error.jsp?exception="+e);
	}
} else {
	response.sendRedirect("login.jsp");
}
%>
</HTML>

